In complex devices having a large number of modules and submodules, a failure can be difficult to diagnose. In complex electronic and electromechanical devices sensors are incorporated for outputting data related to the performance of such a device. However, it is not uncommon for such sensors to output data in a plurality of low level cryptic formats such that given the large volume of data typically captured during device operation, a diagnosis of a malfunction is nearly humanly impossible except perhaps for a small number of experts whose time is in increasingly greater demand. Such experts are able to interpret the low level sensor data, to use their interpretations to progressively determine a more detailed understanding of a malfunction, and, decide when to terminate searching for yet a more detailed diagnosis. Further, if the data output from device sensors is such that it can be organized according to an appropriate module/submodule hierarchy of the device, then in many cases an expert can readily diagnose a device malfunction with little, if any, backtracking from exploring one or more incorrect diagnosis hypotheses.
Thus, for example, if the diagnostic data for an automated archival data storage device is organized according to an module/submodule hierarchy where, for instance, there are module/submodule decompositions for: (a) modules for controlling data transfers between one or more data repositories and input/output devices, and (b) modules for physically moving data storage media units (e.g., tape cartridges) between the data repositories and the input/output devices, then an expert for such a data storage device can typically readily determine which of the two hierarchies to explore in diagnosing a malfunction. Further, such an expert will likely quickly determine a diagnosis to the level of detail supported in the data.
Given the above observations and the high demand for such experts, artificially intelligent software systems known as expert systems have been developed to automatically provide much of the expertise that formerly required a human expert. Such systems typically include at least three components: a rule base having rules embodying the knowledge an expert uses in solving a problem, a fact base having data related to the specific problem at hand which is to be solved, and an inference engine which selects pertinent rules from the rule base to apply to the problem given the current facts in the fact base. An expert system for diagnosing malfunctions in complex devices having a module/submodule hierarchical organization or decomposition is therefore worthwhile to provide. In particular, it is worthwhile to provide an expert system for diagnosing faults of a device having a module/submodule hierarchical organization wherein the expert system makes use of the hierarchical organization to efficiently and cost effectively provide fault diagnosis.